/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package issr.controller;

import issr.entity.Lotto;
import issr.entity.Prodotto;
import issr.entity.Puntovendita;
import issr.entity.Utente;
import issr.persistence.Database;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.ejb.Stateless;

/**
 *
 * @author Soulreaver
 */
@WebService(serviceName = "ControlloreInserimentoLotto")
@Stateless()
public class ControlloreInserimentoLotto {

    private Database db = Database.getInstance();

    /**
     * Web service operation
     */
    @WebMethod(operationName = "ottieniCatalogo")
    public ArrayList<Prodotto> ottieniCatalogo(@WebParam(name = "pv") Puntovendita pv) {
        return db.caricaCatalogo(pv);
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "inserisciLotto")
    public boolean inserisciLotto(@WebParam(name = "prodotto") Prodotto prodotto, @WebParam(name = "gs1barCode") int gs1barCode, @WebParam(name = "quantita") int quantita, @WebParam(name = "scadenza") String scadenza, @WebParam(name = "utente") Utente utente) {
        try {
        Puntovendita pv = utente.getPuntovendita();
        DateFormat formatter;
        Date scadenzaDate = null;
        formatter = new SimpleDateFormat("dd-MM-yyyy");
        scadenzaDate = (Date) formatter.parse(scadenza);

        Lotto daInserire = new Lotto(prodotto, pv, gs1barCode, quantita, new Date(), scadenzaDate);
        db.inserisciLotto(daInserire);
        db.aggiornaContatori(prodotto, 0, quantita, 0, 0, 0);
        db.aggiungiEntry(
                utente,
                "Lotto inserito: " + daInserire);

        return true;
        } catch (Exception e) {
            return false;
        }
    }
}
